#ifndef __ventanamapas__h_
#define __ventanamapas__h_

//MNC = MAPA NO CARGADO ; MNCE = MAPA NO CARGADO ELIMINAR
#define MNCPAIS "Mientras no tenga un mapa cargado no puede ingresar ningun país."
#define MNCEPAIS "Mientras no tenga un mapa cargado no puede eliminar ningun país."
#define MNCCONTINENTE "Mientras no tenga un mapa cargado no puede ingresar ningun continente."
#define MNCECONTINENTE "Mientras no tenga un mapa cargado no puede eliminar ningun continente."
#define MNCCONECCION "Mientras no tenga un mapa cargado no puede ingresar ninguna coneccción."
#define MNCECONECCION "Mientras no tenga un mapa cargado no puede eliminar ninguna conección."

// HT = HOW TO ; HTE = HOW TO ELIMINAR
#define HTPAIS "Haz click en el lugar del mapa donde deseas ingresar un nuevo país."
#define HTEPAIS "Haz click en el país que deseas eliminar."
#define HTCONECCION "Haz click sobre los dos paises que quieres que se comuniquen."
#define HTECONECCION "Haz click sobre los dos paises que quieres que dejen de comunicarse."
#define HTMISIONES "Actualmente deshabilitado."

#include "imagearea.h"
#include "vagregarpais.h"
#include "veliminarcontinente.h"
#include "vagregarcontinente.h"
#include <stdlib.h>
#include <gtkmm.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class VentanaMapas : public Gtk::Window{
	
	public:
		VentanaMapas();
		~VentanaMapas();
	
	private:
		
		string ruta;
		
		VecContinentes vContinentes;
		bool cargarImagen;
		
		//widgets del menu de arriba
		Gtk::HBox menu;
		Gtk::Button bNuevo;
		Gtk::Button bCargar;
		Gtk::Button bGuardar;
		
		
		Gtk::VBox vBox;
		
		//Widgets menu de abajo
		Gtk::HBox hBox;
		Gtk::VBox vBoxPais;
		Gtk::ToggleButton bAgregarPais;
		Gtk::ToggleButton bEliminarPais;
		Gtk::VBox vBoxContinente;
		Gtk::Button bAgregarContinente;
		Gtk::Button bEliminarContinente;
		Gtk::VBox vBoxConeccion;
		Gtk::ToggleButton bAgregarConeccion;
		Gtk::ToggleButton bEliminarConeccion;
		Gtk::VBox vBoxSalir;
		Gtk::Button bMisiones;
		Gtk::Button bSalir;
		
		//Widgets mapa
		Gtk::EventBox eventos;
		ImageArea area;
		
		//Widgets consola
		Gtk::TextView detalles;
		Glib::RefPtr<Gtk::TextBuffer> detallesBuffer;
		Gtk::ScrolledWindow barra;
		
		//separadores
		Gtk::HSeparator separador;
		Gtk::HSeparator separador2;
		
		int posIni[2], posFin[2];
		bool iniOk, iniEliOk;
		string nP1, nC1, nP2, nC2;
		
		bool on_imagen_clicked(GdkEventButton* event);
		void on_ventana_close();
		void on_salir_clicked();
		void on_pais_clicked();
		void on_coneccion_clicked();
		void on_continente_clicked();
		void on_eliminar_continente_clicked();
		void on_eliminar_pais_clicked();
		void on_eliminar_coneccion_clicked();
		void on_misiones_clicked();
		
		void agregarContinente();
		void eliminarContinente();
		void agregarPais(int x, int y);
		void eliminarPais(int x, int y);
		void agregarConeccion(int x, int y);
		void eliminarConeccion(int x, int y);
		
		bool msgAgregarConeccion();
		
		bool msgAgregarPais(int x, int y, string &nombre);
		void cargaPais(string nombre, int radio, int x, int y, string continente);
		
		void escribirDatos(string nombreP, string nombreC);
		void escribirConsola(string texto);
		
		bool checkNombrePais(string nombP);
		bool checkClickPais(int x, int y, string &nombP, string &nombC);
		int msgAdvertenciaSalir();
		void msgErrorNoHayContinentes();
		void msgErrorMismoClick(string nombre);
		void msgErrorMismoNombre();
		bool msgNuevoMapa(string &filename);
		
		//seniales del menu
		void on_guardar_clicked();
		void on_nuevo_clicked();
		void on_cargar_clicked();
		
};

#endif /*DIBUJAR_H_*/
